#ifndef COMPONENT_H
#define COMPONENT_H

#include <QString>
#include <QMap>
#include <QVector>

struct Component;
typedef QMap<QString, Component> ComponentMap; //string = name

typedef QMap<unsigned int, Component> ColumnComponentMap;
typedef QMap<unsigned int, ColumnComponentMap> PositionComponentMap; //[row][col]

typedef QMap<unsigned int, QString> ColumnComponentNameMap;
typedef QMap<unsigned int, ColumnComponentNameMap> PositionComponentNameMap;

struct Component
{
  Component();

  static ComponentMap getComponents(const std::string& filename);
  static ComponentMap getComponents(const QStringList& files);

  QString name;
  int cells;
  double fuelCost;
  int price;
  QString description;
};

#endif
